SMB MEMORY MAP -------------- RAM Memory Locations ($0000-$07ff) ---------------------------------- $0000-$07 temporary variables, used by many subroutines $0008 sprite object offset $0009 frame counter, many possible uses $000a saved joypad bits (A and B buttons) $000b saved joypad bits (up and down buttons) $000c saved joypad bits (left and right buttons) $000d saved A and B buttons from previous frame $000e number of subroutine to run in game engine on next frame $000f-$14 flag for enemy object data buffer and duplicate object offset holder $0016-$1b enemy object identifier buffer $001d player state $001e-$23 enemy object state $0024-$25 fireball state $0026-$29 block object state $002a-$32 miscellaneous object state $0033 player facing direction $0034-$38 control variables used by firebars (all) or victory mode ($34-$35 only) $0039 power-up object type $003a-$3b fireball bounce flags $003c-$40 hammer bro jump timers $0045 player moving direction $0046-$4b enemy object moving/facing direction $0057 player horizontal speed $0058-$5d enemy object horizontal speed or other movement attribute $005e-$5f fireball horizontal speed $0060-$63 block object horizontal speed (used mainly by brick chunks) $0064-$6c miscellaneous object horizontal speed $006d player page location $006e-$73 enemy object page location $0074-$75 fireball page location $0076-$79 block object page location $007a-$82 miscellaneous object page location $0083-$85 air bubble page location $0086 player horizontal position $0087-$8c enemy object horizontal position $008d-$8e fireball horizontal position $008f-$92 block object horizontal position $0093-$9b miscellaneous object horizontal position $009c-$9e air bubble horizontal position $009f player vertical speed $00a0-$a5 enemy object vertical speed or other movement attribute $00a6-$a7 fireball vertical speed $00a8-$ab block object vertical speed $00ac-$b4 miscellaneous object vertical speed $00b5 player vertical position high byte $00b6-$bb enemy object vertical position high byte $00bc-$bd fireball vertical position high byte $00be-$c1 block object vertical position high byte $00c2-$ca miscellaneous object vertical position high byte $00cb-$cd air bubble vertical position high byte $00ce player vertical position low byte $00cf-$d4 enemy object vertical position low byte $00d5-$d6 fireball vertical position low byte $00d7-$da block object vertical position low byte $00db-$e3 miscellaneous object vertical position low byte $00e4-e6 air bubble vertical position low byte $00e7-e8 address to area's area object data $00e9-ea address to area's enemy object data $00eb-ef used as temporary variables $00f0 offset to note length lookup table $00f1 sfx buffer for square 1 $00f2 sfx buffer for square 2 $00f3 sfx buffer for noise $00f4 buffer for primary music (main level music) $00f5-f6 indirect for music data $00f7 offset for square 2 music data $00f8 offset for square 1 music data $00f9 offset for triangle music data $00fa sfx queue for pause sfx $00fb queue for primary music $00fc queue for secondary music $00fd sfx queue for noise $00fe sfx queue for square 2 $00ff sfx queue for square 1 $0109 vertical flip flag, used by enemy objects $010d vertical coordinate used for floatey number w/ flagpole $010e vertical movement force dummy variable used with $010d $010f score offset used with flagpole to award points $0110-$0115 control for floatey numbers, used by enemy objects $0117-$011c horizontal coordinate control for floatey numbers $011e-$0123 vertical coordinate control for floatey numbers $0125-$0129 shell chain counter, used to determine points given $012c-$0131 timer for floatey numbers $0133 dummy digit $0134-$0139 digit modifiers, used to increment or decrement digits $0200-$02ff sprite object data written to sprite RAM in DMA $0300 vram buffer 1 current offset $0301-$033f vram buffer 1, used mostly to write text $0340 vram buffer 2 current offset $0341-$035f vram buffer 2, used mostly to write level graphics $0363 bowser's body controls (d7=mouth, d0=feet) $0364 used as counter to control bowser's feet $0365 bowser's movement speed $0366 bowser's original horizontal position $0367 bowser's flame timing control (used for frenzy) $0368 bowser's enemy object buffer offset (bowser's front) $0369 bridge collapse data offset $036a bowser's graphics flag, used to draw front/rear $0398 vine height flag, used to determine height needed $0388 spinning speed of firebars $0399 vine height, used to determine current height $039a-$039b vine object offsets to enemy buffer $039d initial vine vertical coordinate of origin $03a0 balance platform alignment, used to conjoin two balance platforms $03a1 platform horizontal movement, used in player/platform collisions $03a2-$03a6 platform collision flags $03ad player horizontal position relative to screen $03ae enemy object horizontal position relative to screen $03af fireball horizontal position relative to screen $03b0 air bubble horizontal position relative to screen $03b1-$03b2 block object horizontal position relative to screen $03b3 miscellaneous object horizontal position relative to screen $03b8 player vertical position relative to screen $03b9 enemy object vertical position relative to screen $03ba fireball vertical position relative to screen $03bb air bubble vertical position relative to screen $03bc-$03bd block object vertical position relative to screen $03be miscellaneous object vertical position relative to screen $03c4 player sprite attributes $03c5-$03ca enemy object sprite attributes $03d0 offscreen control bits, used by player $03d1 '' '' '' , used by enemy objects $03d2 '' '' '' , used by fireballs $03d3 '' '' '' , used by air bubbles $03d4 '' '' '' , used by block objects $03d6 '' '' '' , used by misc objects $03d8-$03dd offscreen masked control bits, used by enemy objects $03e4-$03e5 original vertical coordinate of block object $03e6-$03e7 block buffer address low byte used with block objects $03e8-$03e9 metatile backup data used to replace block object $03ea-$03eb page location of block object used by other objects $03ec-$03ed flags used by block objects to replace metatiles $03ee control bit used to assign offsets $03f0 counter for number of block hits, residual variable $03f1-$03f2 block object original horizontal position $03f9-$03ff attribute table buffer used to render attribute table $0400 player's horizontal movement force, used for fixed point math $0401 enemy object's horizontal movement force $0416 player's movement force dummy variable $0417-$041c enemy object's movement force dummy variable $041d-$041e fireball's movement force dummy variable $041f-$0422 block object's movement force dummy variable $0423-$042b miscellaneous object's movement force dummy variable $042c-$042e air bubble movement force dummy variable $0433 player's vertical movement force, used for fixed point math $0434-$0439 enemy object's vertical movement force $043a-$043b fireball's vertical movement force $043c-$043f block object's vertical movement force $0440-$0448 miscellaneous object's vertical movement force $0450 player's maximum left speed $0456 player's maximum right speed $046a current offset for cannon or whirlpool $046b-$0470 page location of cannon or whirlpool $0471-$0476 horizontal coordinate of cannon or left extent of whirlpool $0477-$047c vertical coordinate of cannon or length of whirlpool $047d-$0482 cannon timers or whirlpool flag ($047d only) $0483 bowser's hit points $0484 stomp chain counter, used to determine points given $0490 player collision bits $0491-$0495 enemy object collision bits $0499 player bounding box size control $049a-$049f enemy object bounding box size control $04a0-$04a1 fireball bounding box size control $04a2-$04aa miscellaneous object bounding box size control $04ac-$04af player bounding box coordinates $04b0-$04c7 enemy object bounding box coordinates $04c8-$04cf fireball bounding box coordinates $04d0-$04f7 miscellaneous object bounding box coordinates $0500-$05cf block buffer used for even-numbered pages $05d0-$069f block buffer used for odd-numbered pages $06a0 column offset used by level data parser $06a1-$06ad metatile buffer used to render name table graphics $06ae-$06b6 enemy offsets used in conjunction with hammers $06b7 miscellaneous object offset used with jumping coins $06bc brick coin timer flag (not the timer itself) $06be-$06c6 miscellaneous object collision flag $06cb enemy frenzy buffer, contents taken from enemy object buffer $06cc game's secondary hard mode flag (activates on world 5-3 or hard game) $06cd enemy frenzy queue, used by frenzy area objects $06ce fireball counter, used to assign fireball offset $06cf duplicate enemy object offset used with long firebar and bowser objects $06d1 timer used to delay lakitu's reappearance $06d3 number of enemies in group, used with enemy group objects $37-$3e $06d5 player graphics table offset $06d6 warp zone control $06d7 fireworks display counter $06d9 loop command multi-part counter for correct progression $06da loop command multi-part counter for all progression $06db jumpspring force $06dc bowser's maximum range of horizontal movement from origin $06dd bitmask filter used with swimming cheep-cheeps $06de timer used to delay area changes $06e4 player OAM data offset $06e5-$06ea enemy object OAM data offset $06ec-$06ed block object OAM data offset, sometimes used for floatey numbers $06ee-$06f0 air bubble OAM data offset $06f1-$06f2 fireball OAM data offset $06f3-$06fb miscellaneous object OAM data offset $06fc player 1 joypad bits or master joypad bits $06fd player 2 joypad bits $06ff player's movement speed used to influence scroll $0700 player's walking/running speed, unsigned $0701 friction adder used to slow player down, whole portion $0702 friction adder used to slow player down, fractional portion $0703 player's running speed/running flag $0704 swimming flag, affects player's physics $0705 fractional used for player's horizontal movement $0706 difference required to halt jumping force if A not pressed $0707 vertical high byte of origin of jump $0708 vertical coordinate of origin of jump $0709 vertical fractional movement force, used for jumping/falling $070a vertical fractional movement force, used for falling $070b player growing/shrinking flag $070c animation frame timer setting (not the timer itself) $070d player animation frame control $070e jumpspring animation frame control $070f vertical coordinate at time of player to flagpole collision $0710 starting position control bits from header $0711 fireball throwing timer $0712 used when player is killed to skip loading death music $0713 flagpole sound queue used to load flagpole slide sound $0714 player crouching flag $0715 game timer bits from header $0716 disable player collision detection flag $0717 current demo action $0718 current demo timer setting (not the timer itself) $0719 primary message counter used by victory mode $071a page location of left edge of screen $071b page location of right edge of screen $071c horizontal position of left edge of screen $071d horizontal position of right edge of screen $071e number of columns to update, used by level data parser $071f number of tasks to perform, used by level data parser $0720 current name table high used by level data parser $0721 current name table low used by level data parser $0722 sprite 0 check flag (sprite 0 used in rendering status bar) $0723 scroll lock flag $0725 current page number $0726 current column position $0727 terrain height control $0728 backloading flag used if player starts at other than beginning $0729 behind-renderer flag used if area objects behind renderer $072a page control for area object data $072b page select for area object data $072c current offset for area object data $072d-2f area object data offset buffer $0730-32 area object data offset buffer flag/length counter $0733 area object style (green ledge, mushroom, bullet bill) $0734 staircase control counter used in loading staircase data $0735 vertical length of object, used in rendering $0736 half-length of mushroom ledge used to position stem $0739 current offset for enemy object data $073a page control for enemy object data $073b page select for enemy object data $073c task control for screen routines in title screen, game and game over modes $073d horizontal scroll in 0-31 range, used to activate level data parser $073f horizontal scroll in 0-255 range, used to set PPU scroll register $0740 vertical scroll used to set PPU scroll register (always zero) $0741 foreground scenery type (water, wall) $0742 background scenery type (trees, mountains, etc.) $0743 cloud terrain type override flag $0744 background color control $0745 loop command flag $0746 star flag task control used at end-of-level $0747 master timer control flag and counter $0748 hidden 1-up block coin tally (not stored in BCD) $0749 secondary message counter used in victory mode $074a bitmask used to mask out joypad bits $074e used to determine area type (water, ground, underground, castle) $074f used to store offset used to find area address $0750 enemy data and area data pointer, 2 MSB used to set area type $0751 page number offset, used whenever area changes $0752 mode and flag for alternate entry into area $0753 player on the screen (0=mario, 1=luigi) $0754 player's size (0=big, 1=small) $0755 player's horizontal position on the screen, used by scroll routine $0756 player status (0=small, 1=super, 2=fiery) $0757 game timer loading control flag $0758 controller override bits $0759 game timer expiration flag (nonzero = game timer has expired) $075a onscreen player's number of lives $075b '' '' halfway page number $075c '' '' area number used to determine actual area number $075d '' '' control flag for hidden 1-up blocks $075e '' '' amount of coins player has (not stored in BCD) $075f '' '' world number used by level loading routine, etc. $0760 '' '' area number used as offset to area address offset $0761 offscreen player's number of lives $0762 '' '' halfway page number $0763 '' '' area number used to determine actual area number $0764 '' '' control flag for hidden 1-up blocks $0765 '' '' amount of coins player has (not stored in BCD) $0766 '' '' world number used by level loading routine, etc. $0767 '' '' area number used as offset to area address offset $0768 fractional movement force used to influence scroll, used in victory mode $0769 skip intermediate lives display flag $076a game's primary hard mode flag (controls enemies and secondary hard mode flag) $076b used by world selection routine to select world number $0770 primary mode of operation (0=title screen, 1=game, 2=victory, 3=game over) $0772 secondary mode of operation (value here depends on contents of $0770) $0773 vram buffer address controller $0774 screen disable control (nonzero = screen off) $0775 actual scroll speed as returned by scroll routine $0776 game pause status $0777 game pause timer $0778 mirror of PPU control register 1 ($2000) $0779 mirror of PPU control register 2 ($2001) $077a number of players (0=1 player, 1=2 players) $077f interval timer control, influences all interval timers $0780 select button timer used for menu $0781 animation frame timer used to animate player $0782 jump/swim frame timer $0783 running timer $0784 block bounce frame timer $0785 side collision timer $0786 jumpspring timer $0787 game timer control, influences the game timer $0789 climbing side timer $078a-$078e enemy object frame timers used by certain enemy objects $078f enemy frenzy timer $0790 bowser flame timer $0791 stomp timer $0792 air bubble timer $0795 scroll interval timer $0796-$079b enemy object interval timers $079d brick coin timer $079e injured invincibility timer $079f star mario invincibility timer $07a0 screen timer, used to delay output to the screen $07a1 world change timer used in victory mode $07a2 demo timer $07a7-$07ad linear feedback shift register, used to induce pseudorandomness $07b0 offset for noise music data $07b1 buffer for secondary music (event type music) $07b2 buffer for pause sfx $07b3 note length buffer for square 2 $07b4 note length counter for square 2 $07b5 envelope data control for square 2 $07b6 note length counter for square 1 $07b7 envelope data control for square 1 $07b8 note length buffer for triangle $07b9 note length counter for triangle $07ba beat length counter for noise $07bb counter for length of square 1 sfx $07bd counter for length of square 2 sfx $07be secondary counter used by power-up/vinegrow sfx $07bf counter for length of noise sfx $07c0 counter used for DAC, for some reason $07c1 original offset for noise music data, used for loopback $07c4 note length lookup table offset adder, used to speed up music $07c5 primary music buffer used while playing secondary music $07c6 pause mode flag used by sound engine $07c7 music header offset used for ground level music $07ca alternate sound register content flag for square 1 reg $4001 $07d7-$07dc game's top score in BCD format $07dd-$07e2 player 1 (mario) score in BCD format $07e3-$07e8 player 2 (luigi) score in BCD format $07ed-$07ee player 1 (mario) coin tally in BCD format $07f3-$07f4 player 2 (luigi) coin tally in BCD format $07f8-$07fa game timer digits $07fc game's world select enable flag (also affects hard mode flag) $07fd previously saved world number used by continue function $07ff warm boot flag validation PRG-ROM Locations ($8000-$ffff) ------------------------------- $8000-$8059 startup initialization routine $805a-$807f VRAM pointer look-up table used by VRAM rendering routine $8080-$8081 VRAM buffer offsets $8082-$8181 non-maskable interrupt routine (everything happens here) $8182-$81c5 pause handler $81c6-$8211 sprite shuffler $8212-$821f operation mode root execution tree routine $8220-$8230 move all sprites offscreen (0-63 or 1-63) $8231-$823e title screen mode execution tree routine $823f-$8244 world select buffer template (used to change world number) $8245-$831c game menu handler $831d-$8324 game menu mushroom icon VRAM data $8325-$833f game menu mushroom icon draw routine $8340-$8354 game demo action data $8355-$836a game demo timing data $836b-$838a game demo engine $838b-$839f victory mode execution core $83a0-$83af victory mode execution tree routine $83b0-$83bc setup victory mode $83bd-$83f5 victory mode player autocontrol routine $83f6-$8460 victory mode message handler $8461-$849e victory mode end-of-world handler $849f-$84b6 floatey number graphics data $84b7-$84c2 floatey number score data $84c3-$8566 floatey number handler (enemies) $8567-$858a screen routines execution tree routine $858b-$859a initialize screen $859b-$85ba setup intermediate display $85bb-$85be area palette VRAM pointer offsets $85bf-$85ca area palette VRAM pointer routine $85cb-$85ce background color control VRAM pointer offsets $85cf-$85d6 background colors by area type or background color control $85d7-$85e2 player object colors $85e3-$85f0 background color control VRAM pointer handler $85f1-$8642 player and background colors handler $8643-$8651 area style (mushroom platform) palette handler $8652-$8659 write top status bar line $865a-$8692 write bottom status bar line $8693-$86a7 time-up screen handler $86a8-$86e5 intermediate display handler $86e6-$86fe area data parser task control engine $86ff-$8731 title screen handler $8732-$8748 VRAM data clean-up routine (also draws mushroom icon) $8749-$8751 write top score to title screen $8752-$8778 game text (top status bar line) $8779-$8797 game text (world/lives display) $8798-$87aa game text (time-up display) $87ab-$87bf game text (game over display) $87c0-$87ec game text (warp zone message and number placeholders) $87ed-$87f1 game text (luigi) $87f2-$87fd game text (warp zone numbers) $87fe-$8807 game text offsets $8808-$889c game text routine (handles all except victory messages) $889d-$88ad reset sprites and screen timer routine $88ae-$8969 metatile buffer renderer for area graphics $896a-$89c2 attribute table renderer for area graphics $89c3-$89c8 color rotation palette (the colors in sequence) $89ca-$89d0 blank palette template $89d1-$89e0 area type palettes for VRAM BG palette 3 $89e1-$8a38 color rotation handler $8a39-$8a4c replacement metatile graphics table used with block objects $8a4d-$8a60 remove coin/axe routine $8a61-$8b07 metatile removal/replacement routines $8b08-$8b0f metatile graphics table offsets $8b10-$8ca3 metatile graphics table $8ca4-$8cc7 water area palette data $8cc8-$8ceb ground area palette data $8cec-$8d0f underground area palette data $8d10-$8d33 castle area palette data (also used for bg color control 7) $8d34-$8d3b bg color control 4 palette (day/snow) $8d3c-$8d43 bg color control 5 palette (night/snow) $8d44-$8d4b area style 1 palette (mushroom) $8d4c-$8d53 bowser palette $8d54-$8d67 victory message for mario $8d68-$8d7b victory message for luigi $8d7c-$8da7 mushroom retainer message $8da8-$8dbe princess message part 1 $8dbf-$8ddd princess message part 2 $8dde-$8dee world select message part 1 $8def-$8e03 world select message part 2 $8e04-$8e18 jump engine $8e19-$8e5b init name tables routine $8e5c-$8e91 read joypads $8e92-$8eec VRAM buffer contents handler $8eed-$8ef3 update PPU control register 1 routine $8ef4-$8eff status bar numbers data (positions and numbers of digits) $8f00-$8f05 status bar numbers memory offsets $8f06-$8f5e status bar number display routine $8f5f-$8f96 math routine used to update timer, score and coin digits $8f97-$8fbc top score update handler $8fbc-$8fce default sprite object offsets in sprite data $8fcf-$9060 initialize game and area routine $9061-$90cb setup game routine $90cc-$90e6 initialize CPU RAM $90e7-$90ec area music selection data (tells what music to play) $90ed-$9115 select area music $9116-$912d player entrance position and bg priority data $912e-$9130 game timer data used with entrance setup $9131-$91bc setup player entrance and game timer $91bd-$91cc halfway page nybbles data $91cd-$9217 lose player's life handler $9218-$9223 game over mode execution tree routine $9224-$9236 setup game over routine $9237-$9263 game over handler $9264-$92a9 continue game routines used when player loses life $92aa-$92af residual $92b0-$92da area parser task handler $92db-$92f6 increment area parser column position $92f7-$92f9 offsets to background scenery data $92fa-$9389 background scenery data $938a-$93ad background scenery metatile data $93ae-$93b0 offsets to foreground scenery data $93b1-$93d7 foreground scenery data $93d8-$93db terrain metatile data $93dc-$93fb terrain rendering control bits $93fc-$9401 area parser core $9404-$9503 background scenery/foreground scenery/terrain handler $9504-$9507 block buffer lower bounds data $9508-$96c4 area data loader and handler $96c5-$96f1 alter area attributes area object handler $96f2-$9715 scroll lock object/warp zone scroll lock object handlers $9716-$9727 kill enemies handler (used to remove specific enemy IDs) $9728-$973f enemy frenzy area objects handler $9740-$97b6 area style object handler $97b7-$97b9 pulley/rope object metatile data $97ba-$97ce pulley/rope object handler $97cf-$9805 castle object metatile data $9806-$986e castle object handler $986f-$9881 water pipe object handler $9882-$989e intro pipe object handler $989f-$98aa sideways pipe control and metatile data $98ab-$98b2 exit pipe object handler $98b3-$98dc sideways pipe render routine used for intro and exit pipe objects $98dd-$98e4 vertical pipe metatile data $98e5-$9949 vertical pipe object handler $994a-$9956 empty enemy object buffer slot detection routine $9957-$9965 hole with water object handler $9968-$9978 question block row objects handler $9979-$9993 bridge object handler $9994-$999d residual flag balls object code $999e-$99cf flagpole object handler $99d0-$99d6 endless rope object handler $99d7-$99ed platform balance rope object handler $99ee-$99f1 coin metatile data used with coin row object $99f2-$99fa coin row object handler $99fb-$99fd castle-related objects position data $99fe-$9a00 castle-related objects metatile data $9a01-$9a08 bowser's bridge object handler $9a09-$9a0d axe object handler $9a0e-$9a18 chain object handler $9a19-$9a24 empty block object handler $9a25-$9a28 solid block row/column objects metatile data $9a29-$9a2d brick row/column objects metatile data ($9a2d used for row object only) $9a2e-$9a3d brick row object handler $9a3e-$9a4f solid block row object handler $9a50-$9a58 brick column object handler $9a59-$9a68 solid block column object handler $9a69-$9aa4 bullet bill cannon setup code used with area style object handler $9aa5-$9aad staircase object height data $9aae-$9ab6 staircase object starting row data $9ab7-$9ad2 staircase object handler $9ad3-$9b00 jumpspring object handler $9b01-$9b0d hidden 1-up block object handler $9b0e-$9b13 question block object handler $9b14-$9b18 brick with coins object handler $9b19-$9b35 brick with items object handler (also used by other related objects) $9b36-$9b3c get area object ID routine used with question block and brick objects $9b3d-$9b40 hole object metatile data $9b41-$9b7c hole object handler $9b7d-$9bab tall area object renderer routine (used with object taller than 1 row) $9bac-$9bba large object length processor routine $9bbb-$9bca get large object attribute routine $9bcb-$9bd2 get area object pixel X position $9bd3-$9bdc get area object pixel Y position $9bdd-$9be0 block buffer address data $9be1-$9bf5 get block buffer address routine $9bf6-$9bf7 unused $9bf8-$9c02 area object data offsets used in loop command processing $9c03-$9c12 load area and enemy objects data address pointer and area type $9c13-$9c21 get area and enemy objects data address pointer (based on current world and area numbers) $9c22-$9cb3 area and enemy objects data address loader and area object data header process routine $9cb4-$9cbb offsets to levels' area and enemy objects data address pointer table, based on world number $9cbc-$9cdf levels' area and enemy objects data address pointer table $9ce0-$9ce3 enemy object data address table offsets, based on area type $9ce4-$9d05 enemy object data address table low $9d06-$9d27 enemy object data address table high $9d28-$9d2b area object data address table offsets, based on area type $9d2c-$9d4d area object data address table low $9d4e-$9d6f area object data address table high $9d70-$a1ae enemy object data $a1af-$aeda area object data $aedb unused $aedc-$aee9 game mode execution tree routine $aeea-$aefd game engine checkpoint routine (decides if the game engine gets run or not) $aefe-$af92 game engine core (this is the actual game proper) $af93-$b033 scroll handler $b034-$b037 offscreen subtracter and joypad bits data used with scroll handler $b038-$b049 get screen position $b04a-$b068 game engine subroutine execution tree routine $b069-$b0e5 player entrance handler $b0e6-$b1c6 player control handler $b1c7-$b1e4 vine autoclimb handler $b1e5-$b205 vertical pipe entry handler $b206-$b232 sideways pipe entry handler $b233-$b244 player change timer control handler $b245-$b254 player injury blink timer control handler $b255-$b268 player size inversion routine $b269-$b271 player death timer control handler $b273-$b27c reset game engine subroutine select handler $b27d-$b287 fire flower get timer control handler $b288-$b2a2 player palette cycle routine used for fire flower and star get $b2a3 subroutine return point used by player death timer control handler $b2a4-$b2c1 flagpole slide initialize handler $b2c2-$b2c9 hidden 1-up block coin amounts based on world number $b2ca-$b328 end level handler $b329-$b359 player movement subroutine core handler $b35a-$b36c player on ground movement subroutine $b36d-$b375 player falling movement subroutine $b376-$b3c6 player jumping/swimming movement subroutine $b3c7-$b3ce player climbing position adders low and high $b3cf-$b423 player climbing movement subroutine $b424-$b44f player movement physics-related data $b450-$b58b player movement physics routine $b58c-$b58e player animation timing data $b58f-$b5cb player animation timing handler $b5cc-$b623 impose friction on player movement routine $b624-$b686 fireball and air bubble objects engine core $b687-$b688 fireball object X speed data $b689-$b6f8 fireball object processing routine $b6f9-$b74a air bubble object checkpoint and setup routines $b74b-$b74c air bubble object movement force data $b74d-$b74e air bubble object timing data $b74f-$b7a3 run game timer routine $b7a4-$b7b7 warp zone object run routine $b7b8-$b84a whirlpool engine core $b84b-$b854 flagpole score data $b855-$b8b5 flagpole engine core $b8b6-$b8b9 jumpspring positioning data $b8ba-$b91d jumpspring engine core $b91e-$b948 vine object setup routine $b949-$b94a vine object height data $b94b-$b9b9 vine object run routine $b9ba-$b9bb bitmasks used with cannons $b9bc-$ba30 bullet bill cannons engine core $ba31-$ba32 bullet bill speed data used with cannons $ba33-$ba88 bullet bill object handler used with cannons $ba89-$ba91 enemy offset data used with hammer objects to compare with hammer bro and bowser $ba92-$ba93 hammer object X speed data $ba94-$bac2 hammer object setup routine $bac3-$bb37 hammer object processing routine $bb38-$bb50 coin block handler used with block bump handler routine $bb51-$bb83 jumping coin object setup routine $bb84-$bb95 empty misc object buffer slot detection routine $bb96-$bba6 misc objects engine core $bba7-$bbf7 jumping coin processing routine $bbf8-$bbf9 coin tally display offsets used to update coin display $bbfa-$bbfb score display offsets used to update score $bbfc-$bbfd status bar nybbles used by status bar number display routine $bbfe-$bc21 increment coin tallies routine used to award coin $bc22-$bc26 setup score for getting coin $bc27-$bc2f award points to score of player routine $bc30-$bc35 routine used to get status bar nybbles based on player $bc36-$bc48 update status bar number routine (also performs zero suppression) $bc49-$bc84 power-up object setup routine $bc85-$bcea power-up object run routine $bceb-$bcec block buffer Y position adder data $bced-$bd83 player's background-to-head collision handling routine $bd84-$bd9a init block object position $bd9b-$bdd1 block bump handler routine $bdd2-$bde7 block with item handler used with block bump handler routine $bde8-$bdf5 brick and block metatile data $bdf6-$be01 block bump metatile checking routine $be02-$be1e brick shatter handler routine $be1f-$be40 coin on top of block detection routine $be41-$be6f brick chunks object setup routine $be70-$beb1 block objects core (also run routine for brick chunks) $beb2-$bed3 bouncing block object run routine $bed4-$bf01 check to replace block object with metatile routine $bf02-$bf08 move enemy horizontally routine $bf09-$bf0e move player horizontally routine $bf0f-$bf4c move sprite object horizontally core routine $bf4d-$bf62 move enemy vertically routine $bf63-$bf6a move defeated enemy or spiny's egg vertically routine $bf6b-$bf6f move falling platform routine $bf70-$bf87 move red paratroopa routine $bf88-$bf8b move drop platform routine $bf8c-$bf91 move enemy slowly vertically routine $bf92-$bf9e move jumping or flying enemy vertically routine $bf9f-$bfa0 maximum speed data for block objects $bfa1-$bfa3 residual $bfa4-$bfac impose gravity on block objects $bfad-$bfb3 impose gravity on all other sprite objects $bfb4-$bfd0 move platforms up or down routine $bfd1-$bfd6 impose gravity on red paratroopa $bfd7-$c046 impose gravity core routine (used by all sprite objects affected) $c047-$c06a enemies and loop commands core routine $c06b-$c075 loop command world number data $c076-$c080 loop command page number data $c081-$c08b loop command Y position data $c08c-$c0cb game level loopback handler (this makes the looping happen) $c0cc-$c12e loop command processing core $c12f-$c143 enemy frenzy queue handler $c144-$c215 enemy data loader and handler $c216-$c225 enemy frenzy buffer handler $c226-$c22d enemy object state init routine $c22e-$c230 group enemy objects jump point $c231-$c24f parser of area change objects $c250-$c26b increment enemy data offset routine $c26c-$c27e process enemy ID for positioning handler $c27f-$c2ef enemy init routines jump and jump table $c2f0 used by enemy IDs that have no init code $c2f1-$c2f6 goomba init routine $c2f7-$c306 podoboo init routine $c307-$c30b princess/mushroom retainer init routine $c30c-$c30d normal enemy object X speed data $c30e-$c31d normal enemy object init routine $c31e-$c325 red koopa init routine $c326-$c327 hammer bro walking timer data $c328-$c33c hammer bro init routine $c33d-$c341 init routine used by green paratroopa $10 and lakitu $c342-$c349 bloober init routine $c34a-$c36a red paratroopa init routine $c36b-$c374 bullet bill init routine $c375-$c384 cheep-cheep init routine $c385-$c394 lakitu init routine $c395-$c397 kill lakitu routine $c398-$c3a3 pseudorandom difference adjuster data used for spiny's egg $c3a4-$c3e5 lakitu and spiny spawning handler $c3e6-$c44e spiny spawning routine $c44f-$c453 firebar spinning speed data $c454-$c458 firebar spinning direction data $c459-$c487 firebar init routine $c488-$c497 flying cheep-cheep X position data $c498-$c4a3 flying cheep-cheep X speed data $c4a4-$c548 flying cheep-cheep init routine $c549-$c574 bowser init routine $c575-$c59c duplicate enemy object spawn routine $c59d-$c5a0 bowser flame Y position data $c5a1-$c5a2 bowser flame Y movement force data $c5a3-$c630 bowser flame init routine $c631-$c636 fireworks display X position data $c637-$c63c fireworks display Y position data $c63d-$c689 fireworks init routine (used for each one) $c68a-$c691 bitmasks $c692-$c699 bullet bill/cheep-cheep Y position data $c69a-$c69b swimming cheep-cheep enemy ID data $c69c-$c71a bullet bill/cheep-cheep init routine $c71b-$c786 enemy group objects handler $c787-$c79f piranha plant init routine $c7a0-$c7b6 enemy frenzy objects handler $c7b7 return point used by nonexistent object $13 $c7b8-$c7d0 end enemy frenzy handler $c7d1-$c7de green paratroopa $0e init routine $c7df-$c802 balance platform init routine $c803-$c80a drop platform init routine $c80b-$c811 horizontal platform init routine $c812-$c827 vertical platform init routine $c828-$c83e common platform code $c83f-$c84a large lift platform routines $c84b-$c86a lift platform movement setup code used by large and small platforms $c86b-$c86d platform X position adder data low $c86e-$c870 platform X position adder data high $c871-$c880 position platform routine used by lift and balance platforms $c881 end of enemy object init routines $c882-$c8d5 enemy run routines jump and jump table $c8d6 used by enemy IDs that have no run code $c8d7-$c8df princess/mushroom retainer run routine $c8e0-$c904 enemy run routine used by enemy objects $00-$14 $c905-$c933 enemy movement routines jump and jump table $c934-$c946 bowser flame run routine $c947-$c94c firebar objects run routine $c94d-$c964 small platforms run routine $c965-$c981 large platforms run routine $c982-$c997 large platforms movement routines jump and jump table $c998-$c9af erase enemy object $c9b0-$c9cd podoboo movement routine $c9ce-$c9cf hammer throwing timer data $c9d0-$c9d3 shelled enemy object X speed data $c9d4-$c9d7 revived enemy object X speed data $c9d8-$ca0f hammer bro movement routine $ca10-$ca11 hammer bro jump length data $ca12-$ca57 hammer bro jump routine $ca58-$ca76 hammer bro X movement routine $ca77-$cac7 movement routine used by koopas and goombas $cac8-$cae4 revived stunned shell enemy routine $cae5-$caea defeated enemy movement routine $caeb-$caf8 defeated goomba check handler $caf9-$cafe jumping enemy object movement routine (used by green paratroopa $0e and star power-up) $caff-$cb24 red paratroopa movement routine $cb25-$cb44 green paratroopa $10 movement routine $cb45-$cb65 green paratroopa $10 and horizontal platform movement centering routine $cb66-$cb86 movement routine used by both green paratroopa $10 and horizontal platform $cb87-$cb88 bitmasks used with bloober $cb89-$cc35 bloober movement routines $cc36-$cc45 bullet bill movement routines $cc46-$cc49 swimming cheep-cheep movement data $cc4a-$ccc6 swimming cheep-cheep movement routines $ccc7-$cd29 firebar oscillating position look-up table $cd2a-$cd2d firebar mirroring data $cd2e-$cd39 firebar position look-up table offsets $cd3a-$cd3b firebar Y position data (used for collision detection) $cd3c-$cdba firebar handler core $cdbb-$ce8d firebar handler setup to draw, and collision detection handler $ce8e-$ced4 firebar oscillating position handler $ced5-$ced9 pseudorandom subtracter data used with flying cheep-cheeps $ceda-$cede background priority data used with flying cheep-cheeps $cedf-$cf24 flying cheep-cheep movement routine $cf25-$cf27 lakitu difference adjusters used in movement routine $cf28-$cf6b lakitu movement routine $cf6c-$cfdc lakitu-to-player difference handler $cfdd-$cfeb bridge collapse metatile removal position data $cfec-$d060 bridge collapse handler (also deals with bowser) $d061-$d064 pseudorandom range data used with bowser $d065-$d070 bowser run routine $d071-$d07e kill all enemies routine $d07f-$d17a bowser behavior core $d17b-$d1bb bowser graphics handler $d1bc-$d1d0 bowser object misc tasks routine $d1d1-$d1d8 bowser flame timing data $d1d9-$d1ea set bowser flame timer routine $d1eb-$d294 bowser flame movement routine and graphics handler $d295-$d2cc fireworks run routine $d2cd-$d2d0 star flag Y position data $d2d1-$d2d4 star flag X position data $d2d5-$d2d8 star flag graphics data $d2d9-$d2f1 star flag run routines and jump table $d2f2-$d30d game timer check for fireworks routine $d30e-$d310 increment star flag task control $d311 exit from star flag routines $d312-$d34d award game timer points (also used to award fireworks points) $d34e-$d395 raise and draw star flag/start fireworks routine $d396-$d3a1 draw star flag and set timer $d3a2-$d3af area change delay routine used by star flag object $d3b0-$d40f piranha plant movement routine $d410-$d431 firebar spin routine $d432-$d5d2 balance platform movement routines (handles everything including rope) $d5d3-$d606 vertical platform movement routines $d607-$d630 horizontal platform movement routines $d631-$d63c drop platform movement routine $d63d-$d64e right-moving platform movement routine $d64f-$d654 large lift platforms movement routine $d655-$d65a small platforms movement routine $d65b-$d670 common code to all lift platforms $d671-$d679 small platform collision detection $d67a-$d6d5 offscreen bounds check used by sprite objects $d6d6-$d6d8 unused $d6d9-$d735 fireball to enemy collision detection $d736-$d73d enemy IDs used for defeated bowser $d73e-$d794 fireball to enemy collision handler $d795-$d7c3 defeated enemy code used when enemies hit by fireball, shell, or from underneath $d7c4-$d7ff player to hammer collision detection $d800-$d84c player to power-up collision handlers $d84d-$d84e residual $d84f-$d850 kicked shell X speed data $d851-$d852 X speed data used for demoted koopas $d853-$d891 player to enemy/power-up collision detection $d892-$d894 kicked shell points data $d895-$d8f8 player to enemy collision handler $d8f9-$d92b check to injure player routine $d92c-$d964 injure or kill player routine $d965-$d968 stomped enemy points data $d969-$d9d1 stomped enemy handler $d9d2-$d9d3 shelled enemy revival timing data $d9d4-$d9f5 stomped shell enemy handler $d9f6-$da10 enemy facing direction routines $da11-$da24 floatey number setup routine used for enemies $da25-$da2b bitmasks used to set bits $da2c-$da32 bitmasks used to clear bits $da33-$dab3 enemies collision detection $dab4-$daf0 enemies collision handler used for first enemy $daf1-$db44 enemies collision handler used for second enemy $db45-$db7a player to large platform collision detection $db7b-$dbb9 player to small platform collision detection $dbba-$dc16 player to platforms collision handler $dc17-$dc18 player positioning data used with platforms $dc19-$dc40 player position on platform routines $dc41-$dc51 check player's vertical position routine $dc52-$dc61 get enemy bounding box offset routine $dc62-$dc63 player vertical position upper extent data $dc64-$ddfe player to background collision detection and handler $ddff-$de02 stop player movement $de03-$de04 area change timing data $de05-$de24 metatile removal and game code for coin and axe metatiles $de25-$de26 climbing X position adder data $de27-$de28 climbing page location adder data $de29-$de2d flagpole Y positions data (used to determine points) $de2e-$de40 flagpole/vine collision detection and handler core $de41-$de79 flagpole collision handler $de7a-$debc vine collision handler $debd-$dec3 invisible metatiles check routine $dec4-$dee7 jumpspring collision detection and handler $dee8-$df4a pipe entry handler used when going into pipes $df4b-$df8a impede player's movement routine $df8b-$df8e upper extent data for solid metatiles $df8f-$df95 check for solid metatiles routine $df96-$df99 upper extent data for climbing metatiles $df9a-$dfa0 check for climbing metatiles routine $dfa1-$dfaf check for coin metatiles routine $dfb0-$dfb8 get metatile attribute routine $dfb9-$dfbe state data used with enemy to bg collision detection $dfbf-$dfc0 X speed data used with enemy to bg collision detection $dfc1-$dff7 enemy to background collision detection $dff8-$e066 enemy to background collision handler $e067-$e0e1 enemy landing state and facing direction handler $e0e2-$e0fd red koopa handler (check to see if needs to turn around) $e0fe-$e123 enemy side collision detection $e124-$e142 enemy side collision handler $e143-$e14e get X position difference between player and enemy objects $e14f-$e15a enemy landing effectuator $e15b-$e162 enemy subtract position routine used in enemy jump routine $e163-$e184 enemy jump routine $e185-$e1ad hammer bro to background collision detection $e1ae-$e1b4 check under enemy routine $e1b5-$e1c7 check for non-solid metatiles routine $e1c8-$e1fc fireball to background collision detection and handler $e1fd-$e22c bounding box control data $e22d-$e235 setup fireball object bounding box $e236-$e242 setup misc object bounding box $e243-$e24b setup enemy object bounding box $e24c-$e251 setup small platform bounding box $e252-$e272 get masked offscreen bits for enemy object bounding box $e273-$e27b setup large platform bounding box $e27c-$e288 setup offset for enemy object bounding box $e289-$e29b move enemy object bounding box offscreen routine $e29c-$e2dd bounding box core routine $e2de-$e324 check bounding box for offscreen positions routine $e325-$e326 jump to use player as object for sprite object collision detection core $e327-$e387 sprite object collision detection core routine $e388-$e391 block buffer check for enemies $e392-$e39b residual, probably once block buffer check for misc objects $e39c-$e3ac block buffer check for fireballs $e3ad-$e3af block buffer adder data used by player object for head and feet checks $e3b0-$e3cb block buffer X position adder data $e3cc-$e3e7 block buffer Y position adder data $e3e8-$e3ef block buffer collision jumps used by player object $e3f0-$e431 block buffer collision core used to do sprite object to bg collision detection $e432 unused $e433-$e434 vine Y position adder data $e435-$e4ad vine graphics handler $e4ae-$e4bf six-sprite stacker used with vines and platforms $e4c0-$e4c7 first sprite X and Y positions data used with hammers $e4c8-$e4cf second sprite X and Y positions data used with hammers $e4d0-$e4d7 first and second sprite graphics data used with hammers $e4d8-$e4db hammer sprite attribute data $e4dc-$e540 hammer graphics handler $e541-$e54a floatey number graphics data used with flagpole $e54b-$e5b2 flagpole and floatey number graphics handler $e5b3-$e5b4 jump used to set offscreen coordinate and prepare to dump $e5b5-$e5c7 jumps used to dump value into sprite data $e5c8-$e654 large platform graphics handler $e655-$e681 floatey number graphics handler used with jumping coin $e682-$e685 jumping coin graphics data $e686-$e6bd jumping coin graphics handler $e6be-$e6cd power-up graphics data $e6ce-$e6d1 power-up attribute data $e6d2-$e73d power-up graphics handler $e73e-$e83f enemy graphics table $e840-$e85a enemy graphics table offsets based on enemy ID number $e85b-$e875 enemy attribute data $e876-$e877 enemy animation timing data $e878-$e87c jumpspring frame offsets $e87d-$eba9 enemy graphics handler $ebaa-$ebb1 draw enemy object row $ebb2-$ebb6 draw sprite object row $ebb7-$ebc0 move sprite row offscreen $ebc1-$ebcc move sprite column offscreen $ebcd-$ebd0 default block object graphics data $ebd1-$ec52 block object graphics handler $ec53-$ecdd brick chunks graphics handler used with block object graphics handler $ecde-$ed05 fireball and firebar graphics handlers $ed06-$ed08 explosion graphics data used with fireballs and fireworks $ed09-$ed16 fireball explosion handler (decides whether or not to draw explosion) $ed17-$ed60 explosion graphics handler $ed61-$ed65 kill fireball rotine $ed66-$ede0 small platform graphics handler $ede1-$ee06 air bubble graphics handler $ee07-$ee16 player graphics table offsets $ee17-$eee6 player graphics table $eee7-$eee8 swim kick tile number data used for swimming $eee9-$ef9d player graphics handler core $ef9e-$efa3 sprite data used to render player on intermediate displays $efa4-$efbd render player on intermediate display routine $efbe-$efeb draw player routine $efec-$f09b process player actions for draw player routine $f09c-$f0af player change size graphics offset adder data $f0b0-$f0e8 player change size handler $f0e9-$f129 handle player sprite flipping as necessary routine $f12a-$f130 get player's relative position $f131-$f13a get air bubble's relative position $f13b-$f147 get fireball's relative position $f148-$f151 get misc object's relative position $f152-$f158 get enemy's relative position $f159-$f164 get block object's relative position $f165-$f170 get relative position of object with variable offset in mind $f171-$f17f get sprite object relative position core $f180-$f186 get player's offscreen bits $f187-$f190 get fireball's offscreen bits $f191-$f19a get air bubble's offscreen bits $f19b-$f1a4 get misc object's offscreen bits $f1a5-$f1a7 object offset data used for fireballs, air bubbles, and misc objects $f1a8-$f1ae get proper object offset to be used for offscreen bits $f1af-$f1b5 get enemy's offscreen bits $f1b6-$f1b9 get block object's offscreen bits $f1ba-$f1bf set offset to offscreen bits for type of sprite object $f1c0-$f1d6 get offscreen bits core with current offset $f1d7-$f1e2 run offscreen bits routines $f1e3-$f1f2 X offscreen bits data $f1f3-$f1f5 default X onscreen bits offsets $f1f6-$f22a get X offscreen bits core $f22b-$f233 Y offscreen bits data $f234-$f236 default Y onscreen bits offsets $f237-$f238 vertical high byte position unit data $f239-$f26c get Y offscreen bits core $f26d-$f281 divide pixel difference routine used by offscreen bits core routines $f282-$f2c9 draw sprite object core routine (used by most objects) $f2ca-$f2cf unused $f2d0-$f380 sound core routine $f381-$f3b0 jumps to dump sound registers $f3b1-$f3be swim/stomp sound envelope data $f3bf-$f4d3 square 1 sound effects handler $f4d4-$f4d9 extra life sound frequency data $f4da-$f4f7 power-up grab sound frequency data $f4f8-$f517 power-up/vine grow sound frequency data $f518-$f62a square 2 sound effects handler $f62b-$f63a brick shatter frequency data $f63b-$f690 noise sound effects handler $f691-$f739 music handler core $f73a-$f7bb square 2 music handler $f7bc-$f819 square 1 music handler $f81a-$f86c triangle music handler $f86d-$f8c4 noise music handler $f8c5-$f8d7 note and beat length handler (part of this does alternate format) $f8d8-$f8f3 load control register routine used with music handler core $f8f4-$f90c load envelope data routines used depending on music $f90d-$f93d music header data offsets $f93e-$f9b7 music header data $f9b8-$fefc music data $fefd-$feff unused $ff00-$ff65 music frequency register look-up table $ff66-$ff96 music length look-up table $ff97-$ffc9 music envelope data $ffca-$ffe9 bowser flame envelope data $ffea-$fff9 brick shatter envelope data $fffa-$ffff vectors used by processor CHR-ROM Locations ($0000-$1fff) ------------------------------- $0000-$030f ($00-$30) big player $0310-$031f ($31) alternate swim tile used by big player $0320-$045f ($32-$45) small player $0460-$046f ($46) alternate swim tile used by small player $0470-$049f ($47-$49) small player $04a0-$04ff ($4a-$4f) standing/changing size, used by both players $0500-$050f ($50) "00" $0510-$053f ($51-$53) bowser flame $0540-$057f ($54-$57) star flag $0580-$05af ($58-$5a) crouching, used by big player $05b0-$05bf ($5b) platform, used on all except cloud-type levels $05c0-$05ff ($5c-$5f) climbing, used by big player $0600-$063f ($60-$63) jumping coin $0640-$065f ($64-$65) fireball/firebar $0660-$068f ($66-$68) explosion $0690-$06cf ($69-$6c) koopa paratroopa $06d0-$06ff ($6d-$6f) shelled koopa $0700-$073f ($70-$73) goomba $0740-$074f ($74) air bubble $0750-$075f ($75) platform, used on cloud-type levels $0760-$079f ($76-$79) mushroom power-up $07a0-$07bf ($7a-$7b) princess (head) $07c0-$07df ($7c-$7d) hammer bro (head) $07e0-$07ff ($7e-$7f) flagpole flag $0800-$083f ($80-$83) hammer $0840-$084f ($84) brick chunk $0850-$086f ($85-$86) brick (used by block object) $0870-$087f ($87) empty block (used by block object) $0880-$08cf ($88-$8c) hammer bro (body) $08d0-$08df ($8d) star power-up (top) $08e0-$08ff ($8e-$8f) spiny's egg $0900-$093f ($90-$93) climbing, used by big player $0940-$095f ($94-$95) spiny's egg $0960-$09df ($96-$9d) spiny $09e0-$09ff ($9e-$9f) killed player $0a00-$0a9f ($a0-$a9) koopa troopa $0aa0-$0b1f ($aa-$b1) buzzy beetle $0b20-$0b7f ($b2-$b7) cheep-cheep $0b80-$0bdf ($b8-$bd) lakitu $0be0-$0ccf ($be-$cc) bowser $0cd0-$0cff ($cd-$cf) mushroom retainer $0d00-$0d0f ($d0) podoboo (top) $0d10-$0d3f ($d1-$d3) hammer bro (body) $0d40-$0d5f ($d4-$d5) hammer bro (body) $0d60-$0d6f ($d6) fire flower (top) $0d70-$0d7f ($d7) podoboo (bottom) $0d80-$0d8f ($d8) princess (body) $0d90-$0d9f ($d9) fire flower (bottom) $0da0-$0dbf ($da-$db) princess (body) $0dc0-$0dff ($dc-$df) bloober $0e00-$0e0f ($e0) top of vine $0e10-$0e1f ($e1) vine $0e20-$0e3f ($e2-$e3) hammer bro (body) $0e40-$0e4f ($e4) star power-up (bottom) $0e50-$0e6f ($e5-$e6) piranha plant (top) $0e70-$0eaf ($e7-$ea) bullet bill $0eb0-$0ebf ($eb) piranha plant (bottom) $0ec0-$0edf ($ec-$ed) piranha plant (top) $0ee0-$0eef ($ee) piranha plant (bottom) $0ef0-$0eff ($ef) defeated goomba $0f00-$0f3f ($f0-$f3) jumpspring $0f40-$0f5f ($f4-$f5) shelled buzzy beetle $0f60-$0f6f ($f6) "10" $0f70-$0f7f ($f7) "20" $0f80-$0f8f ($f8) "40" $0f90-$0f9f ($f9) "50" $0fa0-$0faf ($fa) "80" $0fb0-$0fbf ($fb) "0" $0fc0-$0fcf ($fc) blank sprite tile $0fd0-$0fef ($fd-$fe) "1-UP" $0ff0-$0fff ($ff) bottom of coin icon $1000-$109f ($00-$09) numbers $10a0-$123f ($0a-$23) letters $1240-$127f ($24-$27) blank background tiles $1280-$128f ($28) dash $1290-$129f ($29) times symbol "x" $12a0-$12af ($2a) bullet bill cannon bottom (left) $12b0-$12bf ($2b) exclamation point $12c0-$12df ($2c-$2d) mushroom ledge $12e0-$12ef ($2e) coin icon $12f0-$12ff ($2f) flagpole ball (left) $1300-$1330 ($30-$33) mountain sides and top $1340-$134f ($34) mountain middle $1350-$138f ($35-$38) bush/cloud sides and top $1390-$13cf ($39-$3c) cloud bottom $13d0-$13df ($3d) flagpole ball (right) $13e0-$13ff ($3e-$3f) left pulley $1400-$140f ($40) bullet bill cannon bottom (right) $1410-$141f ($41) top of water/lava $1420-$143f ($42-$43) title screen font $1440-$144f ($44) title screen box corner (upper-left) $1450-$145f ($45) brick with line section $1460-$146f ($46) title screen box left $1470-$147f ($47) brick $1480-$148f ($48) title screen box top $1490-$149f ($49) title screen box corner (upper-right) $14a0-$14af ($4a) title screen box right $14b0-$151f ($4b-$51) tree ledge $1520-$152f ($52) tree ledge stump $1530-$156f ($53-$56) question block $1570-$15af ($57-$5a) empty block $15b0-$15cf ($5b-$5c) right pulley $15d0-$15ef ($5d-$5e) solid white brick (castle levels) $15f0-$15ff ($5f) title screen box corner (lower-left) $1600-$163f ($60-$67) vertical pipe top $1680-$16af ($68-$6a) vertical pipe shaft $16b0-$174f ($6b-$74) mushroom ledge $1750-$176f ($75-$76) mushroom stump (top) $1770-$177f ($77) bowser's bridge (top) $1780-$178f ($78) title screen box bottom $1790-$179f ($79) bowser's bridge (bottom) $17a9-$17af ($7a) title screen box corner (lower-right) $17b0-$17ef ($7b-$7e) axe $17f0-$17ff ($7f) chain $1800-$181f ($80-$81) fence (top) $1820-$185f ($82-$85) solid green rock (water levels) $1860-$194f ($86-$94) sideways pipe $1950-$198f ($95-$98) title screen font $1990-$199f ($99) horizontal rope $19a0-$19af ($9a) vertical rope $19b0-$19cf ($9b-$9c) castle entrance top $19d0-$19ef ($9d-$9e) castle ramparts (top) $19f0-$19ff ($9f) crown symbol used for more than 9 lives $1a00-$1a1f ($a0-$a1) fence (bottom) $1a20-$1a3f ($a2-$a3) rope used with balance platform $1a40-$1a4f ($a4) seaplant $1a50-$1a8f ($a5-$a8) coin $1a90-$1aaf ($a9-$aa) castle ramparts (middle) $1ab0-$1aef ($ab-$ae) solid 3d block $1af0-$1aff ($af) rope used with balance platform (midstate) $1b00-$1b3f ($b0-$b3) cloud level terrain $1b40-$1b7f ($b4-$b7) cracked rock terrain $1b80-$1bdf ($b8-$bd) tree top $1be0-$1bff ($be-$bf) tree trunk $1c00-$1c0f ($c0) bridge railing $1c10-$1c1f ($c1) bridge $1c20-$1c5f ($c2-$c5) coin (water levels) $1c60-$1c9f ($c6-$c9) bullet bill cannon barrel $1ca0-$1cdf ($ca-$cd) bullet bill cannon top $1ce0-$1cef ($ce) mushroom menu icon $1cf0-$1cff ($cf) copyright symbol $1d00-$1e80 ($d0-$e8) title screen font $1e90-$1eb0 ($e9-$eb) seaplant $1ec0-$1ff0 (N/A) title screen and menu game text $1ff1-$1fff (N/A) unused